Conversation
The <Refer> verb hands a call off to a SIP endpoint via SIP REFER. Reuses the existing Transfer-flavored SipUri type instead of a distinct Refer-only type, with validation rejecting Transfer-only attributes (TransferAnswerUrl, Username, Uui, etc.) when a SipUri is attached to Refer.
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
ckoegel
reviewed
Jul 7, 2026
Contributor
There was a problem hiding this comment.
this seems to be trying to replicate the autogenerated model docs for the opeanpi schemas. Since it wont come from the api spec, it will need to be hand maintained going forward, and it is also the only BXML verb to have one of these docs. I'd recommend deleting this, customers can use the guide on the dev docs and see the code snippets we'll add there instead
Contributor
There was a problem hiding this comment.
This model got a bit over-engineered. I'm gonna make some changes on the branch to make it more closely align to our other verbs, but for reference:
- we typically leave validation out of BXML models for simplicity, and if validation is needed it can be done on the PV side
- no other verbs only have the
WithFieldNamemethods, these are unnecessary for constructing the verb and add bloat to the model
stampercasey
added a commit
to Bandwidth/java-sdk
that referenced
this pull request
Jul 30, 2026
ReferCompleteCallback (and its ReferCallStatusEnum dependency) will land later via a separate api-specs-driven PR once VAPI-3440 merges, so it doesn't belong in this PR yet. Refer's nested Refer.ReferSipUri is also removed in favor of the existing Transfer-flavored SipUri class, matching the merged csharp-sdk reference implementation (Bandwidth/csharp-sdk#201) which kept Refer plain: no validation, no custom builder, just a shared SipUri property.
ckoegel
approved these changes
Aug 17, 2026
ckoegel
added a commit
to Bandwidth/java-sdk
that referenced
this pull request
Aug 17, 2026
* VAPI-3164 * VAPI-3164 Changes done by open-api * VAPI-3164 Changes done by open-api * VAPI-3164 * VAPI-3164 * VAPI-3164 * VAPI-3164 * Remove ReferCompleteCallback and use shared SipUri in Refer ReferCompleteCallback (and its ReferCallStatusEnum dependency) will land later via a separate api-specs-driven PR once VAPI-3440 merges, so it doesn't belong in this PR yet. Refer's nested Refer.ReferSipUri is also removed in favor of the existing Transfer-flavored SipUri class, matching the merged csharp-sdk reference implementation (Bandwidth/csharp-sdk#201) which kept Refer plain: no validation, no custom builder, just a shared SipUri property. * Remove orphaned referCompleteCallback schema and stale manifest entries bandwidth.yml/api/openapi.yaml still carried the full referCompleteCallback schema and a referComplete addition to the shared eventType enum description after ReferCompleteCallback.java was deleted; nothing generates from it anymore. Also removed the corresponding .openapi-generator/FILES entries and a stray README.md indentation glitch. * Revert remaining referComplete additions in docs/*.md and model javadocs The eventType enum description was regenerated with referComplete added to every callback model's docs/*.md and javadoc comment, plus the standalone eventType schema's line wrap in api/openapi.yaml. Since ReferCompleteCallback is out of scope for this PR, these are unrelated diff noise - reverted to match main exactly. * Revert api/openapi.yaml entirely; drop hand-maintained docs/Refer.md api/openapi.yaml still carried an unrelated pre-existing rewrap of transferCompleteCallback's description with no connection to this PR - reverted the whole file to match main. Also dropped docs/Refer.md: Refer is hand-written (not generated from api/openapi.yaml), so it's the only BXML verb with a hand-maintained doc page, matching the csharp-sdk reviewer's call to delete the equivalent doc there (customers use the BXML dev docs guide instead). * Address review feedback: remove unnecessary minimal-attributes test ckoegel flagged the referMinimal field/test as unnecessary; keeping only referVerbWithAllAttributes. --------- Co-authored-by: atelegu <131157078+atelegu@users.noreply.github.com> Co-authored-by: atelegu <atelegu@bandwidthcontractors.com> Co-authored-by: stampercasey <cstamper@bandwidth.com> Co-authored-by: Cameron Koegel <53310569+ckoegel@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
<Refer>BXML verb, which sends a call off to a SIP endpoint via SIP REFER.SipUritype for<Refer>'s SIP URI child element, rather than introducing a separateReferSipUritype — see VAPI-3437 for the design rationale.Refer.SipUriElement's setter validates that onlyUriis set (and that it starts withsip:); attaching aSipUriwith any Transfer-only attribute (Username,TransferAnswerUrl,Uui, etc.) throwsArgumentExceptionnaming the offending attribute(s).ReferCompleteCallbackmodel — that will land separately once the api-specs schema (VAPI-3440) is merged, so the SDK-generation workflow can produce it consistently across SDKs.Supersedes #190, which bundled the verb with the callback model and used a nested
Refer.SipUriclass that unintentionally shadowed the sharedSipUritype.Test plan
dotnet testpasses forTestRefer.cs, including new cases covering each Transfer-only attribute being rejected (both viaWithSipUri()and directSipUriElementassignment) and a regression check thatTransfer's own use ofSipUriis unaffecteddocs/Refer.md) reviewed for the Transfer-vs-Refer attribute table